]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
gdm: Cancel user verification on UserVerifier destruction
authorMarco Trevisan (Treviño) <mail@3v1n0.net>
Sat, 30 Jan 2021 00:53:59 +0000 (01:53 +0100)
committerMarge Bot <marge-bot@gnome.org>
Fri, 12 Feb 2021 20:26:00 +0000 (20:26 +0000)
When we cancel an user authentication via Escape key or cancel button on
AuthPrompt we reset the view and we emit a 'cancelled' signal that leads
to destroying the auth prompt and the user verifier.

However, the verifier may still have an operation in progress and its
completion may take some time (as in the case of gdm-fingerprint), but
we just leave the gdm worker running until its pam module completes
(potentially never) clearing and disposing its handle.

So, instead of just clearing the verify, actually cancel and clear it.
In case the user verifier is set, clearing the relevant data will happen
anyway as part of the cancel() call.

Ideally this would have been handled by gdm itself, but unfortunately we
can't fix it there because the verifier itself is a class generated by
gdbus-codegen, so we can't handle this automatically on disposal nor we
can automatically monitor when the caller proxy is stopped on our side.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3654
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1622>

js/gdm/util.js

index 1bd2b6b8ba61f7187d47b1f7f86b81d22d8b8c17..47bb2314e8c7af6d77cab9e372fdbd43ee9ec39e 100644 (file)
@@ -236,7 +236,7 @@ var ShellUserVerifier = class {
     }
 
     destroy() {
-        this.clear();
+        this.cancel();
 
         this._settings.run_dispose();
         this._settings = null;